Unified systems and methods for interchip and intrachip node communication

ABSTRACT

Unified systems and methods for interchip and intrachip node communication are disclosed. In one aspect, a single unified low-speed bus is provided that connects each of the chips within a computing device. The chips couple to the bus through a physical layer interface and associated gateway. The gateway includes memory that stores a status table summarizing statuses for every node in the interface fabric. As nodes experience state changes, the nodes provide updates to associated local gateways. The local gateways then message, using a scout message, remote gateways with information relating to the state changes. When a first node is preparing a signal to a second node, the first node checks the status table at the associated local gateway to determine a current status for the second node. Based on the status of the second node, the first node may send the message or take other appropriate action.

BACKGROUND

I. Field of the Disclosure

The technology of the disclosure relates generally to structures andmethods for facilitating communication between nodes within a computingdevice.

II. Background

Computing devices have become common in modern society. The prevalenceof computing devices is driven in part by the ever increasing array offunctions that are enabled on such computing devices. The increasedfunctionality is enabled by faster processors, larger and faster memoryelements, and inclusion of specialized integrated circuits (ICs)configured to perform specific tasks. Historically, as a new function ornew IC is added to a computing device, a bus is used to allow node(s)associated with the new function to communicate with other nodes of thecomputing device. The bus may follow the rules of an existing low-speedstandard, such as Universal asynchronous receiver/transmitter (UART),Inter-Integrated Circuit (I2C), serial peripheral interface (SPI), or anexisting high-speed standard, such as Peripheral Component Interconnect(PCI), PCI express (PCIe), Universal Serial Bus (USB), or the like.

While the existing standards are suitable for certain specific intendedpurposes, the proliferation of buses operating according to differentstandards makes device design difficult as the conductive elements foreach bus must be routed in such a manner as to comply with certaindesign criteria and/or made to comply with electromagnetic interference(EMI) emissions limits or electromagnetic compatibility (EMC) standards(e.g., such as those promulgated by the Federal CommunicationsCommission (FCC)). When various plural protocols are used, there mayalso be a need to support protocol conversions between differentprotocols. Such conversion requirements add to the complexity of the IC.Communication between nodes may be further complicated by nodesoperating according to different sleep/wake rules set by differentstandards. Clock signals may be sent over each bus, which may increasedifficulty in complying with the EMI emissions limits or the EMCstandards. Still further, if an IC is coupled to multiple buses, the ICmay have different interfaces, one for each coupling. Such interfacesmay be duplicative within the computing device, consume space within theIC, and make design of computing devices difficult. Even when the busesare internal to the IC (e.g., a system network on chip (SNOC)), theremay be requirements for multiple physical and protocol layers, each ofwhich adds to the design complexity.

Even if a designer is able to reconcile the competing requirements forinclusion of the various buses in the computing device, the designer isstill faced with the difficulty of reconciling intrachip communicationwith interchip communication. Even if the designer is able solve theproblems of routing both intrachip and interchip communication and theproblems of controlling EMI, the problems of making sure the variouselements are awake to receive the communication remain. Accordingly,there remains a need for a consistent node-to-node communication systemthat allows reliable communication between nodes within a single IC aswell as between nodes on separate ICs.

SUMMARY OF THE DISCLOSURE

Aspects disclosed in the detailed description include unified systemsand methods for interchip and intrachip node communication. In anexemplary aspect, a single unified low-speed bus, sometimes referred toas an external bus or interchip bus, is provided that connects each ofthe chips within a computing device. The chips couple to the bus througha physical layer interface and associated gateway. The gateway includesmemory that stores a status table summarizing statuses for every node inthe interface fabric. The status table is initially populated at systeminitialization. As nodes experience state changes, the nodes provideupdates to associated local gateways. The local gateways then message,using a scout message, remote gateways with information relating to thestate changes. In this fashion each gateway has an updated status tableto which reference can be made relating to the status of any node in thenetwork. When a first node is preparing a signal to a second node, thefirst node checks the status table at the associated local gateway todetermine a current status for the second node. Based on the status ofthe second node, the first node may send the message, hold the message,send with a wake command, or take other appropriate action. Byconsolidating all low-speed buses into a single unified bus with asingle unified physical layer interface, space within integratedcircuits (ICs) of the computing device is not used for duplicativephysical layer interfaces, unnecessarily duplicative conductive elementsare not required to connect the ICs, and layout design is simplified.Still further, fewer buses means that fewer clock signals are required,which means that power consumption may be reduced. Design is likewisesimplified by eliminating the need to support various interface blocks.Still further, software uniformity is ensured in contrast toheterogeneous systems where different software and/or bridge software isoften needed to send a message between nodes.

Exemplary aspects of the present disclosure allow for the bus to bereinitialized through manipulations of an arbitration process insituations where a gateway detects inconsistent behavior in messagesreceived. That is, when the gateway detects events that are in conflictwith the gateway's internal state, the gateway sends a specialarbitration identifier during the next arbitration cycle to guaranteethe gateway wins arbitration. After winning the arbitration, the gatewaythen sends no data, which forces a reset timeout. The reset timeoutforces a re-initialization, which allows the status tables to berepopulated and message traffic to resume without previously detectederrors.

In this regard in one aspect, a method for populating a status table fornetwork nodes within a computing device is provided. The method includesactivating a first IC coupled to a bus. The method also includesregistering first nodes associated with the first IC with a firstgateway. The method also includes populating a first status table at thefirst gateway with information about the first nodes associated with thefirst IC. The method also includes permitting intrachip communicationbetween the first nodes associated with the first IC based onavailability as indicated in the first status table.

In another aspect, a method for populating a status table for networknodes within a computing device is provided. The method includescoupling a first IC with first nodes to a bus within a computing device.The method also includes coupling a second IC with second nodes to thebus within the computing device. The method also includes receiving,from a first gateway associated with the first IC, status andconfiguration information relating to the first nodes. The method alsoincludes populating, with the status and configuration informationrelating to the first nodes, a status table at a second gatewayassociated with the second IC.

In another aspect, a method for updating a status table for networknodes within a computing device is provided. The method includes, at afirst gateway in a first IC, receiving a state change indication from afirst node in the first IC. The method also includes, in response to thestate change indication, updating a first status table at the firstgateway to reflect a state change of the first node. The method alsoincludes generating a scout message to a second gateway in a second IC,wherein the scout message indicates the state change of the first node.

In another aspect, a method for updating a status table for networknodes within a computing device is provided. The method includes, at afirst gateway in a first IC, receiving a scout message from a secondgateway in a second IC, wherein the scout message indicates a statechange of a node in the second IC. The method also includes, in responseto the scout message, updating a first status table at the first gatewayto reflect the state change of the node.

In this regard in one aspect, an IC is provided. The IC includes a node.The node includes a transmitter and a receiver. The IC also includes agateway. The gateway includes an external interface configured to becoupled to a bus and communicate thereover through a first protocol. Thegateway also includes an internal interface communicatively coupled tothe node and configured to communicate therebetween through the firstprotocol.

In another aspect, an IC is provided. The IC includes a first node. TheIC also includes a second node. The IC also includes a gateway. Thegateway includes an external interface configured to couple to a bus andoperative to control information from the first node and the secondnode. The IC also includes common circuitry that communicatively couplesthe first node and the second node to the gateway.

In another aspect, a computing system is provided. The computing systemincludes a first IC. The first IC includes a first node. The first nodeincludes a first transmitter and a first receiver. The first IC alsoincludes a first gateway. The first gateway includes a first externalinterface. The first gateway also includes a first internal interfacecommunicatively coupled to the first node and configured to communicatetherebetween through a first protocol. The computing system alsoincludes a second IC. The second IC includes a second node. The secondnode includes a second transmitter and a second receiver. The second ICalso includes a second gateway. The second gateway includes a secondexternal interface. The second gateway also includes a second internalinterface communicatively coupled to the second node and configured tocommunicate therebetween through the first protocol. The computingsystem also includes a bus coupled to the first gateway of the first ICand the second gateway of the second IC and configured to carry signalstherebetween using the first protocol.

In this regard in one aspect, an IC is provided. The IC includes a node.The IC also includes a gateway communicatively coupled to the node. Thegateway includes an interface configured to be coupled to a bus. Thegateway also includes a look-up table configured to store data relatingto availability of nodes associated with the bus. The IC also includes acontrol system operatively coupled to the node and the gateway. Thecontrol system is configured to receive a status update relating to astate of the node. The control system is also configured to sendinformation relating to the state of the node to other gatewaysassociated with the bus to promote reliability between node-to-nodecommunication.

In another aspect, a method for facilitating node-to-node communicationis provided. The method includes receiving a status update from a localnode at a gateway. The method also includes broadcasting the statusupdate to remote gateways.

In an exemplary aspect, a method of forcing a system reset is disclosed.The method includes, during an arbitration phase, asserting from agateway a most urgent priority value to win arbitration. The method alsoincludes, after winning the arbitration, sending no data from thegateway to force a bus timeout. The method also includes, in response tothe bus timeout, initiating a system reset.

In another exemplary aspect, an IC is disclosed. The IC includes agateway. The gateway includes a bus interface configured to couple to abus. The gateway further includes a control system. The control systemis configured to, during an arbitration phase, assert a most urgentpriority value on the bus to win arbitration. The control system isfurther configured to, after winning the arbitration, send no data onthe bus to force a bus timeout. The control system is further configuredto, in response to the bus timeout, initiate a system reset.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram of an exemplary conventional computing systemwith multiple communication buses and plural protocols for chip-to-chipcommunication;

FIG. 2 is a block diagram of an exemplary computing system with a singleexternal bus according to an exemplary aspect of the present disclosure;

FIG. 3 is a simplified block diagram of a first chip with plural nodescoupled to a second chip with plural nodes;

FIG. 4 is a flowchart illustrating population of a system topology andstatus table in a gateway during initialization of the computing systemof FIG. 2;

FIG. 5 is an exemplary system topology and status table according to anexemplary aspect of the present disclosure;

FIG. 6 is a signal flow diagram showing how a node registers with agateway;

FIG. 7 is a flowchart illustrating updating the system topology andstatus table of FIG. 5 with scout messages generated by changes in astate of a node;

FIG. 8 is an exemplary scout message according to an exemplary aspect ofa protocol of the present disclosure;

FIG. 9 is a signal diagram of a node communicating with a second nodewithin a chip;

FIG. 10 is a signal diagram of a node communicating with a second remotenode;

FIG. 11 is a table illustrating structure of a standard messageaccording to exemplary aspects of a protocol of the present disclosure;

FIG. 12 is a signal diagram of an arbitration process according to anexemplary aspect of the present disclosure;

FIG. 13 is an exemplary bus sequence for a bus halt following anarbitration on a bus; and

FIG. 14 is an alternate exemplary bus sequence for the bus halt, wherethe bus does not have a keeper circuit, but has a wire-AND arbitration.

DETAILED DESCRIPTION

With reference now to the drawing figures, several exemplary aspects ofthe present disclosure are described. The word “exemplary” is usedherein to mean “serving as an example, instance, or illustration.” Anyaspect described herein as “exemplary” is not necessarily to beconstrued as preferred or advantageous over other aspects.

Aspects disclosed in the detailed description include systems andmethods for interchip and intrachip node communication. In an exemplaryaspect, a single unified low-speed bus, sometimes referred to as anexternal bus or an interchip bus, is provided that connects each of thechips within a computing device. The chips couple to the bus through aphysical layer interface and associated gateway. The gateway includesmemory that stores a status table summarizing statuses for every node inthe interface fabric. The status table is initially populated at systeminitialization. As nodes experience state changes, the nodes provideupdates to associated local gateways. The local gateways then message,using a scout message, remote gateways with information relating to thestate changes. In this fashion each gateway has an updated status tableto which reference can be made relating to the status of any node in thenetwork. When a first node is preparing a signal to a second node, thefirst node checks the status table at the local associated gateway todetermine a current status for the second node. Based on the status ofthe second node, the first node may send the message, hold the message,send with a wake command, or take other appropriate action. Byconsolidating all the low-speed buses into a single unified bus with asingle unified physical layer interface, space within the integratedcircuits of the computing device is not used for duplicative physicallayer interfaces, unnecessarily duplicative conductive elements are notrequired to connect the integrated circuits, and layout design issimplified. Still further, fewer buses means that fewer clock signalsare required, which means that power consumption may be reduced. Designis likewise simplified by eliminating the need to support variousinterface blocks. Still further, software uniformity is ensured incontrast to heterogeneous systems where different software and/or bridgesoftware is often needed to send a message between nodes.

Exemplary aspects of the present disclosure allow for the bus to bereinitialized through manipulations of an arbitration process insituations where a gateway detects inconsistent behavior in messagesreceived. That is, when the gateway detects events that are in conflictwith the gateway's internal state, the gateway sends a specialarbitration identifier during the next arbitration cycle to guaranteethe gateway wins arbitration. After winning the arbitration, the gatewaythen sends no data, which forces a reset timeout. The reset timeoutforces a re-initialization, which allows the status tables to berepopulated and message traffic to resume without previously detectederrors.

Before addressing exemplary aspects of the present disclosure, a briefoverview of a conventional computing system 10 is provided withreference to FIG. 1. The overview of the conventional computing system10 is provided to help contrast exemplary aspects of the presentdisclosure and illustrate shortcomings of conventional systems.Discussion of exemplary aspects of the present disclosure begins belowwith reference to FIG. 2.

In this regard, FIG. 1 is a block diagram of the conventional computingsystem 10, which includes a first IC 12, which may be an applicationprocessor (sometimes referred to herein as an “AP”). The first IC 12 mayinclude plural subsystems 14(1)-14(N), which may include navigationsystems, such as global navigation satellite system (GNSS) (sometimesreferred to herein as “Nav”), modems, such as a cellular modem for 3G,4G, and/or long term evolution (LTE), sensor subsystems, Always OnProcessor (AOP) subsystems, audio subsystems, and the like. It should beappreciated that each subsystem of the plural subsystems 14(1)-14(N) mayhave a node (not illustrated) associated therewith that translatesapplication layer activity of the subsystem to a lower layer in aprotocol stack for communication with other nodes. The conventionalcomputing system 10 may further include other ICs 16(1)-16(6). While sixother ICs 16(1)-16(6) are illustrated, it should be appreciated thatmore or fewer other ICs such as the other ICs 16(1)-16(6) may be presentwithin the conventional computing system 10. In an exemplary aspect,other ICs 16(1) and 16(2) are mobile device modems (MDMs) and other IC16(4) is a near field communication modem (NFCM) such as a WIFI orBLUETOOTH™ (sometimes referred to as WIFI/BT). Other IC 16(5) may be awireless codec device such as an audio or voice codec (sometimesreferred to as WCD), and other IC 16(6) may be a power management IC(PMIC). It should be appreciated that each of the first IC 12 and theother ICs 16(1)-16(6) may be its own chip mounted on a printed circuitboard (PCB) within the conventional computing system 10. Such mountingmay be done by inserting pins of the chip into a socket, soldering pinsto the PCB, or other techniques as is well understood.

With continued reference to FIG. 1, the first IC 12 communicates withthe other ICs 16(1)-16(6) through communication buses 18(1)-18(6). Itshould be appreciated that each of the communication buses 18(1)-18(6)may include sub-buses operating according to different protocols andhaving different numbers of wires. For example, communication bus 18(2)includes a two-wire (2 W) Peripheral Component Interconnect (PCI)express (PCIe) bus, a four-wire (4 W) Universal asynchronousreceiver/transmitter (UART) host controller interface (UARTHCI) bus, atwo-wire UART BLUETOOTH Low Energy (UART BLE) bus, and a four-wire UARTmobility/mobile assisted wireless-fidelity (WiFi) connectivity (UARTMAWC) bus. Other buses may conform to the system power managementinterface (SPMI) standard, the general purpose input/output (GPIO)standard, the serial peripheral interface (SPI) standard, the UARTGeoFencing (UART GF), UART wireless connectivity interface, version 2(UARTWCI2), or other standards. For each bus and/or sub-bus, the chipsmay need separate interfaces, which may be duplicative. It should beappreciated that routing each of the communication buses 18(1)-18(6)with all of the sub-buses can be complicated. Further, each wire of eachbus requires a pin or contact point, which rapidly becomes commerciallyimpractical. Still further, each of these communication buses18(1)-18(6) may act as an electromagnetic interference (EMI) aggressoror be an EMI victim, which adds to the complexity of routing thecommunication buses 18(1)-18(6). In short, the conventional computingsystem 10 may be improved.

In this regard, exemplary aspects of the present disclosure consolidatelow-speed buses within a computing system into a single low-speed busand implement a protocol that allows node-to-node communication both atan intrachip level and an interchip level. Such consolidation simplifiesrouting of the bus, reduces opportunities for EMI, and reduces pincounts on the chips. Further, such consolidation simplifies overallsystem software by having subsystem nodes and their correspondingcontrol software adhere to a single common application programminginterface (API) as opposed to the requirements for many APIs inheterogeneous systems.

In this regard, FIG. 2 illustrates an exemplary computing system 30 witha first IC 32, which may be an application processor. The first IC 32may include plural subsystems (shown as rectangles, but not numericallylabeled). As noted above, the subsystems may include navigationsubsystems, modem subsystems, sensor subsystems, audio subsystems, AOPsubsystems, and the like. Each of the plural subsystems has anassociated node. Thus, the first IC 32 has nodes 34(1)-34(N). It shouldbe appreciated that the nodes 34(1)-34(N) have respective transmitters34(1)_(Tx)-34(N)_(Tx) and respective receivers 34(1)_(Rx)-34(N)_(Rx).The computing system 30 may further include other ICs 36(1)-36(M) (sixillustrated). An external bus 38 couples the first IC 32 and the otherICs 36(1)-36(M). In an exemplary aspect the external bus 38 is a lowspeed bus. Other IC 36(1) has nodes 40(1)-40(P) therein, other IC 36(2)has a node 42 therein, while other IC 36(3) has plural nodes 44(1)-44(Q)therein. Still other ICs of the other ICs 36(1)-36(M) may have variousnumbers of nodes (not labeled explicitly, but illustrated) therein.Again, it should be appreciated that each of the nodes 40(1)-40(P), 42,and 44(1)-44(Q) has its own respective transmitter and receiver (notshown). The first IC 32 includes a gateway 46 (also labeled “GW” in theFigures). The gateway 46 includes an internal interface that is coupledto the nodes 34(1)-34(N) and an external interface that is coupled tothe external bus 38. Similarly, the other ICs 36(1)-36(M) includerespective gateways 48(1)-48(M) (also referred to as “GW” in theFigures) that are similar to the gateway 46. While other buses such as aUSB and PCIe bus may remain, in general, these are high-speed buses. Asused herein, low-speed buses are buses having speeds up to 50-100 Mbps.In contrast, high-speed buses are in the 100s to 1000s of Mbps or Gbps.In an exemplary aspect, the frequency of the external bus 38 may be 57.6MHz, which is a multiple of the common 19.2 MHz found in many cellulardesigns and qualifies as a low-speed bus.

To better illustrate certain features of the nodes and gateways, FIG. 3provides a simplified block diagram of a partial computing system 50extracted from the computing system 30 of FIG. 2. The partial computingsystem 50 includes the first IC 32, having a control system 51 (labeled“CS” in the Figures), the other IC 36(1), having a control system 52(labeled “CS” in the Figures), and the external bus 38 coupling thefirst IC 32 and the other IC 36(1). The external bus 38 may be atwo-wire bus capable of carrying a clock signal (SCLK) on a first wireand a data signal (SDATA) on a second wire. The gateway 46 of the firstIC 32 is coupled directly by point-to-point coupling 53) to the nodes34(1)-34(N). As used herein such direct coupling is defined to includeone-to-one physical connections. While active and passive elements maybe present between a given node of the nodes 34(1)-34(N) and the gateway46, the connection does not communicatively connect to any other node ofthe nodes 34(1)-34(N) in the first IC 32 without passing through thegateway 46. In contrast, the nodes 40(1)-40(P) of the other IC 36(1) arecoupled to gateway 48(1) indirectly such as through a network on chip(NoC) 54. While FIG. 3 illustrates the first IC 32 with thepoint-to-point coupling 53 and the other IC 36(1) with the NoC 54, in anexemplary aspect, these systems are mutually exclusive. That is, if thefirst IC 32 has the point-to-point coupling 53, then the other IC 36(1)would likewise have the point-to-point coupling 53 rather than the NoC54. Likewise, if the other IC 36(1) had the NoC 54, the first IC 32would likewise have the NoC 54. Note also that while as illustrated thecontrol systems 51 and 52 are internal to the respective gateways 46 and48(1), the present disclosure is not so limited, and the control systems51 and 52 may be outside the respective gateways 46 and 48(1).

With continued reference to FIG. 3, the external bus 38 may couple thefirst IC 32 and the other IC 36(1) to an arbitration clock manager (ACM)56. Alternatively, an ACM 58 may be present in the other IC 36(1) (oranother IC such as the first IC 32). The function of the ACM 56 or theACM 58 is to source the SCLK for the external bus 38 during anarbitration period. As noted above, the gateways 46 and 48(1) includerespective external interfaces 60 and 62 to couple to the external bus38. Likewise, the gateway 46 may include an internal interface 64 tocouple to the nodes 34(1)-34(N). The internal interface 64 may be aunitary element or plural elements as needed or desired. Similarly, thegateway 48(1) may include an internal interface 66 that couples to theNoC 54. In an exemplary aspect, the internal interface 64 may have a setof ports that connect to the internal nodes 34(1)-34(N). Each port has aset of port logical ID registers so that a node of the nodes 34(1)-34(N)can respond to more than one logical node ID. An exemplary port tablecontains registers defining status for the following conditions:reliable, online, wakeable, maximum transmission unit (MTU), and clearto send (CTS). Note that reliability may be a function of individuallogical modes, but the gateway could provide a common set of parametersfor all logical nodes in the port (e.g., online, wakeable, MTU, CTS).Different implementations may partition the attributes differently.

FIG. 4 is a flowchart illustrating population process 70 of a systemtopology and status table 100 (see FIG. 5) in a gateway (e.g., thegateway 46 or one of the gateways 48(1)-48(P)) during initialization ofthe computing system 30 of FIG. 2. The process 70 begins with thecomputing system 30 activating with the first IC 32 connected to theexternal bus 38 (block 72). The first nodes 34(1)-34(N) register withthe first gateway 46 (block 74). This registration may be done inresponse to a solicitation from the gateway 46, in response to the nodes34(1)-34(N) receiving power, or from another command as is readilyunderstood. The first gateway 46 populates the system topology andstatus table 100 (see FIG. 5) (block 76) with information about thenodes 34(1)-34(N). At this point in time, intrachip communication (i.e.,between the nodes 34(1)-34(N)) is possible (block 78), but the gateway46 precludes interchip communication.

With continued reference to FIG. 4, at some later time, one or more ofthe other ICs 36(1)-36(M) are activated. For the purposes ofillustration, the other IC 36(1) is activated and the second gateway48(1) boots (block 80). Note that as used herein, first and second areused for convenience in discriminating between the elements and are notnecessarily strict temporal labels. For example, it is possible thatother IC 36(3) could activate at a first time with the IC 32subsequently activating, and thus, the other IC 36(3) could be “first”for the process 70. Still other temporal orders are possible as isreadily understood. The second gateway 48(1) signals the second nodes40(1)-40(P) to register (block 82). The second gateway 48(1) requestsconfiguration data of the nodes 34(1)-34(N) associated with the firstgateway 46 from the first gateway 46 (block 84). The second nodes40(1)-40(P) register with the second gateway 48(1) (block 86), and thesecond gateway 48(1) populates its own system topology and status table.Note that while in an exemplary aspect of the present disclosure the ICs32 and 36(1)-36(M) are configured independently of one another, inanother exemplary aspect, the first gateway 46 may configure the secondgateway 48(1).

With continued reference to FIG. 4, the second gateway 48(1) sends scoutmessages on the external bus 38 broadcasting the status and propertiesof the second nodes 40(1)-40(P) (block 88). More information about scoutmessages is provided below with reference to FIG. 8. The first gateway46 updates the local system topology and status table with theinformation about the second nodes 40(1)-40(P). The first gateway 46sends scout messages on the external bus 38 to the second gateway 48(1)with the status and properties of the first nodes 34(1)-34(N) (block90). The second gateway 48(1) updates the local system topology andstatus table with the information about the first nodes 34(1)-34(N).Once the system topology and status tables are updated with theinformation about the remote nodes, interchip communication may occuraccording to availability of the nodes involved in the communication asis explained in greater detail below with reference to FIGS. 9 and 10.

FIG. 5 is an exemplary system topology and status table 100 according toan exemplary aspect of the present disclosure. The system topology andstatus table 100 may include fields such as: a node address field 102, anode exists internally field 104, a node exists externally field 106, anode is awake field 108, a wake-on-message is allowed field 110, areliable delivery is required field 112, a node clear to send (CTS)status field 114, and a maximum transmission unit (MTU) size field 116.In exemplary aspects of the present disclosure, the MTU is determined bythe system designer for all receive nodes so as not to overflow buffersand similar factors. There is a direct relationship between SOC area andMTU and buffer sizes, in that larger MTU implies larger buffer size andthus, larger SOC area. Note that the fields 104, 106, 108, 110, and 112may be single bits or simple Y/N indications. The other fields 102, 114,and 116 may be greater than a single bit. Note further that the fields104 and 106 may be consolidated into a single field that indicatesinternal or external or relies on the mutually exclusive nature of thelocation of the nodes to use a single indication to indicate thelocation of a node and the absence of such indication to infer the otherlocation for nodes lacking the indication (e.g., if only node existsinternally field 104 is present, the absence of a positive bit herenecessarily indicates that the node exists externally).

FIG. 6 is a signal flow diagram 130 showing how a node (e.g., node34(1)) registers with a gateway (e.g., the gateway 46) on a reset orinitialization. It should be appreciated that the node 34(1) includesnode hardware (HW) 132 and node software (SW) 134. Likewise, the gateway46 includes a gateway (referenced in drawings as GW) port manager 140, agateway routing table 142 (e.g., the system topology and status table100), a gateway external bus manager 144, and a gateway configuration SW146. Initially, hardware or a software command initiates a reset. Thenode 34(1) may write a reset condition in a status register (notillustrated). The reset condition may be a cold/subsystem hardwarereset, a gateway reset request, a software reset request, or a debugreset. The node 34(1) may test to see if the gateway 46 is ready. Oncethe gateway 46 is ready, the initialization process of the signal flowdiagram 130 begins.

With continued reference to FIG. 6, initially the port table is unlockedand can be modified by the gateway configuration SW 146. The gatewayconfiguration SW 146 writes logical nodeID, Valid, Reliable/Non-Reliablein the port table with signal 150. The gateway configuration SW 146 alsoenables the gateway 46 with signal 152. Alternatively, the gateway 46 isauto-enabled. The gateway port manager 140 indicates to the node HW 132that the gateway 46 is ready with signal 154, which causes the node HW132 to update the gateway read status register (not illustrated). Thenode HW 132 sends a node reset command 156 to the gateway port manager140, which checks the port flag value. The port flag value should be setto disabled. The port flag value is used to reset the port and routingtables on a warm reset condition.

With continued reference to FIG. 6, the gateway port manager 140 sends areset acknowledgment (ACK) 158 to the node HW 132. The node HW 132 sendsa node-initialization interrupt 160 to the node SW 134. Meanwhile thegateway configuration SW 146 may write Logical NodeID, Valid,Reliable/Non-Reliable in the port table with signal 162. The gatewayconfiguration SW 146 may be triggered by the node-initializationinterrupt 160. The node HW 132 sets the auto-enable bit with command164. The node SW 134 sends an enable node command 166 to the node HW132. The node HW 132 sends a port CONF command (sometimes referred to asCMD) 168 to the gateway port manager 140, which responds with a portCONF ACK 170 and locks (write protects or “WP”) the port table such thatit cannot be modified by the gateway configuration SW 146.

With continued reference to FIG. 6, the node HW 132 sends an RX_MTU CMD172 to the gateway port manager 140, which sets local, valid, reliable,RX_MTU in the gateway routing table 142 with command 174. The gatewayport manager 140 sends an MTU ACK 176 to the node HW 132. Meanwhile, thegateway routing table 142 sets HDR per the default value with command178. The node HW 132 sends a Wakeable CMD 180 to the gateway portmanager 140, which sets the wakeable/not-wakeable (NW) bit in thegateway routing table 142 with command 182. The gateway port manager 140sends a wake ACK 184 to the node HW 132. The node HW 132 sends a CTS CMD186 to the gateway port manager 140, which sets the CTS bit in thegateway routing table 142 with command 188. The gateway port manager 140sends a CTS ACK 190 to the node HW 132. The node HW 132 sends an ON/OFFCMD 192 to the gateway port manager 140, which sets the ON/OFF bit inthe gateway routing table 142 with command 194. The gateway port manager140 sends ON/OFF ACK 196 to the node HW 132. The node HW 132 sends aconfiguration done (CONFDONE) CMD 198 to the gateway port manager 140.The gateway routing table 142 then sends a scout command 200 with a nodestate change to the gateway external bus manager 144. The gateway portmanager 140 sends a CONFDONE ACK 202 to the node HW 132 and the porttable is unlocked and may be modified by the gateway configuration SW146. The signals and commands 170-202 are repeated for each node ID inthe port table. The node HW 132 ends by sending a node configurationdone interrupt 204 to the node SW 134.

In an exemplary aspect the port should maintain the state of the node touse in case of a dynamic creation of a logical node ID. This allows thenode's state, such as enabled (on line), On/Off, Wake-able, Rx_MTU, andCTS, to inherit the state of the port at the time the logical node ID iscreated. Note that the logical node ID may be created dynamically bysetting or changing the logical node ID value. The port in the gatewaykeeps track of all possible logical node IDs and their status. As anexample, a physical node may have four logical nodes with IDs a, b, c,and d. Changing conditions cause the dynamic creation of a new logicalnode (and its parameters) at ID e. In so doing, logical node e replaceslogical node a. After creation, the gateway list of logical nodes isupdated to b, c, d, and e. The parameters of the logical node a may bekept in the node software if desired.

FIG. 7 is a flowchart illustrating updating the system topology andstatus table 100 of FIG. 5 with scout messages generated by changes in astate of a node. In particular a process 220 begins with the node 34(1)changing state during normal operation (block 222). For example, thenode 34(1) may enter a sleep mode. The first gateway 46 learns of thestate change of the node 34(1) (block 224). The node 34(1) mayproactively inform the gateway 46 of this state change prior to thestate change; the gateway 46 may periodically poll the nodes 34(1)-34(N)for state changes, or other techniques may be used as needed or desired.After learning of the state change, the first gateway 46 updates thelocal system topology and status table 100 (block 226).

With continued reference to FIG. 7, the first gateway 46 sends a scoutmessage across the external bus 38 broadcasting the change in the localsystem topology and status table 100 (block 228). The second gateway48(1) receives the scout message (block 230) and updates its localsystem topology and status table 100 (block 232).

FIG. 8 is an exemplary scout message 250 according to an exemplaryaspect of a protocol of the present disclosure. The scout message 250may include the following fields: idle field 252, start field 254, scoutidentifier field 256, version (“ver”) field 258, priority field 260, ahandover field 262, a message header 264, and one to four scout commands266 (only one illustrated). The handover field 262 ends the arbitrationphase of the scout message 250 and begins the data phase.

After all the system topology and status tables 100 are populated andupdated, the nodes of the computing system 30 of FIG. 2 may communicatewith one another to effectuate higher level functions of the computingsystem 30. In this regard, FIG. 9 is a signal diagram 270 of the node34(1) communicating with a second node 34(2) within the first IC 32. Thenode 34(1) sends a message request 272 to the gateway 46. The messagerequest 272 may include attributes such as reliability requirements. Thegateway 46 checks if reliability is required (signal 274). If noreliability is required, the gateway 46 instructs the node 34(1) to sendthe message (signal 276) and the node 34(1) sends the message 278.

With continued reference to FIG. 9, if reliability is required, thegateway 46 checks the system topology and status table 100 to see if thedestination node 34(2) is available (signal 280). If the table 100indicates that the destination node 34(2) is available (signal 282), thegateway 46 instructs the node 34(1) to send the message (signal 284) andthe node 34(1) sends the message 278.

With continued reference to FIG. 9, if reliability is required, and thedestination node 34(2) is not available and not wakeable (signal 286),then the gateway 46 instructs the node 34(1) to hold or discard themessage (signal 288).

With continued reference to FIG. 9, if reliability is required, and thedestination node 34(2) is not available, but is wakeable (signal 290),the gateway 46 sends a wake command 292 to the destination node 34(2).The destination node 34(2) sends a confirmation of waking (signal 294),and the gateway 46 instructs the node 34(1) to send the message (signal296). The node 34(1) sends the message 278.

By checking the system topology and status table 100, reliability isinsured in message transfers Improved reliability allows forconservation of bandwidth in that fewer messages are resent. Suchreliability is achieved even if the nodes have different power domains,different clock domains, and/or different wakeability parameters.

While the signal diagram 270 discusses intrachip node-to-nodecommunication, FIG. 10 is a signal diagram 310 of the node 34(1)communicating with a second remote node 40(1) on a remote IC such as oneof the other ICs 36(1)-36(M). The node 34(1) sends a message request 312to the gateway 46. The message request 312 may include attributes suchas reliability requirements. The gateway 46 checks if reliability isrequired (signal 314). If no reliability is required, the gateway 46instructs the node 34(1) to send the message (signal 316) and the node34(1) sends the message 318 across the external bus 38 to the remotedestination node 40(1).

With continued reference to FIG. 10, if reliability is required, thegateway 46 checks the system topology and status table 100 to see if theremote destination node 40(1) is available (signal 320). The table 100should be current based on the scout messages that have previously beensent to provide the status of all nodes in the computing system 30. Ifthe table 100 indicates that the remote destination node 40(1) isavailable (signal 322), the gateway 46 instructs the node 34(1) to sendthe message (signal 324) and the node 34(1) sends the message 318 acrossthe external bus 38 to the remote destination node 40(1).

With continued reference to FIG. 10, if reliability is required, and theremote destination node 40(1) is not available and not wakeable (signal326), then the gateway 46 instructs the node 34(1) to hold or discardthe message (signal 328).

With continued reference to FIG. 10, if reliability is required, and theremote destination node 40(1) is not available, but is wakeable (signal330), the gateway 46 sends a wake command 332 to the remote destinationnode 40(1) across the external bus 38. The remote destination node 40(1)sends a confirmation of waking (signal 334) across the external bus 38,and the gateway 46 instructs the node 34(1) to send the message (signal336). The node 34(1) sends the message 318.

In the interests of helping to explicate the new protocol used on theexternal bus 38, FIG. 11 is a table 350 illustrating structure of astandard message according to exemplary aspects of a protocol of thepresent disclosure. The standard message may have fields such asstandard or scout (Std_or_Scout) 352, version 354, priority level 356,back-off bit 358, node sub-ID 360, clock handover 362, cyclic redundancycheck (CRC) present 364, HDR mode 366, destination node ID 368, length370, payload 372, CRC 374, and bus park 376. While other structuresand/or arrangements for the standard message are possible, the structureillustrated in FIG. 11 is suitable for exemplary aspects of the presentdisclosure.

FIG. 12 is a signal diagram of an arbitration process 400 according toan exemplary aspect of the present disclosure. The arbitration process400 is provided in the interests of helping to explicate the newprotocol used on the external bus 38. While other arbitration processesare possible, the arbitration process 400 is suitable for exemplaryaspects of the present disclosure. The arbitration process 400 beginsafter the end of a previous sequence period 402 and after a bus idleperiod 404. During the bus idle period 404 the SCLK is dormant as is theSDATA. Arbitration phase 406 starts with arbitration start 408 whichbegins when one (or more) of the chips initiates a request on the SDATAline. On detection of the message initiation, an arbitration sequence410 starts, and the ACM 58 drives the SCLK (denoted at 412). The variousrequesting gateways drive the SDATA according to their respectivemessage priority (generally at 414) and priority is established. Oncepriority is established, a clock handover period 416 begins, after whichthe winning gateway drives the SCLK (denoted at 418) and provides theappropriate SDATA (denoted at 420) in a data phase 422.

In the arbitration phase 406, the multiple gateways 46 and 48(1)-48(M)can contend for access to the external bus 38 by transmitting a uniquemessage priority value. The external bus 38 is configured so that whenmore than one of the gateways 46 and 48(1)-48(M) transmit during thearbitration phase 406, the most urgent priority value overrides thegateways 46 and 48(1)-48(M) with less urgent priority values. Toaccomplish this priority scheme, the message priority value istransmitted with a most significant bit (MSB) first, and all thegateways 46 and 48(1)-48(M) sense the external bus 38 to confirm thatthe bit they just output to the external bus 38 is the actual value ofthe external bus 38. Whenever one of the gateways 46 and 48(1)-48(M)detects a bit value that is not equal to the value the gateway justtransmitted, that gateway backs off and does not attempt to transmitsubsequent bits of the message priority value. The winning gateway isthe gateway that detects all bits of its message priority value weretransmitted properly (i.e., the priority bits were not pre-empted byanother one of the gateways 46 and 48(1)-48(M)). The winning gateway isgranted permission to transmit its message during the data phase 422.After the gateway is finished transmitting its message, the external bus38 returns to an idle state where any of the gateways 46 and 48(1)-48(M)is able to request access to the external bus 38.

When one of the gateways 46 and 48(1)-48(M) detects a non-recoverableerror in its internal state, the gateway can send a unique bus accessrequest that will cause a system-wide reset to occur. The unique busaccess request is referred to as a bus error halt sequence. To implementthe bus error halt sequence, the most urgent priority value in thearbitration process is reserved for transmitting the bus error haltsequence. In an exemplary aspect, this priority value can be eitherall-ones or all-zeros, depending on assignment of the message priorityvalues in the computing system 30. The bus error halt sequence can betransmitted by any of the gateways 46 and 48(1)-48(M), and it ispermissible for more than one of the gateways 46 and 48(1)-48(M) totransmit the bus error halt sequence simultaneously. It should beappreciated that by using the most urgent priority value for the buserror halt sequence, the gateway(s) 46 and 48(1)-48(M) that doestransmit the bus error halt sequence will win the arbitration phase 406.The winning gateway(s) then does not transmit any data in the data phase422. Because all winning gateway(s) do not transmit any data, there isno contention, even if there is a tie in the arbitration phase 406. Thelack of a message in the data phase 422 will eventually trigger a resettimer in each of the gateways 46 and 48(1)-48(M) which causes a systemerror and causes all the gateways 46 and 48(1)-48(M) to be reset. In anexemplary aspect, the system error is determined at each of the gateways46 and 48(1)-48(M). The gateways 46 and 48(1)-48(M) may have a secondtimer which prevents them from restarting until the slowest of thegateways 46 and 48(1)-48(M) has an opportunity to detect the frozenexternal bus 38 so the slowest of the gateways 46 and 48(1)-48(M) canalso declare a reset condition internally.

A signal diagram 500 reflecting the system reset just described isprovided in FIG. 13. The signal diagram 500 is similar to the signaldiagram of the arbitration process 400 of FIG. 12 in that thearbitration process 400 begins after the end of the previous sequenceperiod 402 and after the bus idle period 404. During the bus idle period404 the SCLK is dormant as is the SDATA. The arbitration phase 406starts with the arbitration start 408 which begins when one of the chipsinitiates a message on the SDATA line. On detection of the messageinitiation, the arbitration sequence 410 starts, and the ACM 58 drivesthe SCLK (denoted at 412). The requesting gateways assert data 414′ onthe SDATA line and priority is established. As illustrated, the data414′ is encoded in a non-return to zero inverted (NRZI) format, where achange in value is a one and no change in the value is a zero. Thegateways 46 and 48(1)-48(M) transmitting respective priority values willtransmit a logical one by driving a transition to change the state ofthe external bus 38 and then go to a high-impedance state. The signalson the external bus 38 are held in their current state using a keepercircuit (not illustrated) so that the external bus 38 is held in thepresent logic state if there is no gateway actively driving the externalbus 38. One of the gateways 46 and 48(1)-48(M) sends a logical zero bynot changing the state of the external bus 38. Using this method, alogical one will take precedence over a logical zero. Any of thegateways 46 and 48(1)-48(M) that is sending the bus error halt sequenceis sending the most urgent priority value, and thus, no other higherpriority value can exist, so any of the gateways 46 and 48(1)-48(M) thatare transmitting the bus error halt sequence will win the arbitrationphase 406. Since all of the gateways 46 and 48(1)-48(M) transmitting themost urgent priority value are asserting the same values on the externalbus 38, there is no problem with contention.

With continued reference to FIG. 13, having won the arbitration phase406, the winning gateway transmits no data 502 during the data phase422. Likewise, the winning gateway drives the SCLK to zero (denoted at504) until a bus timeout condition occurs at time 506. Detection of thebus timeout condition causes the system reset as previously indicated.

Similarly, FIG. 14 illustrates a signal diagram 600 for the bus errorhalt sequence where the external bus 38 implements a wire-AND function.That is, the external bus 38 has a pull-up resistor (not illustrated)instead of the keeper circuit, and an all-zero priority value is themost urgent value (denoted generally at 414″). A logical zero istransmitted by one of the gateways 46 and 48(1)-48(M) pulling theexternal bus 38 low, and a logical one is transmitted by one of thegateways 46 and 48(1)-48(M) not driving the external bus 38. If nogateway drives the external bus 38, the pull-up resistor pulls theexternal bus 38 to logical one. However, as illustrated, at least one ofthe gateways 46 and 48(1)-48(M) asserts the most urgent priority valueand wins the arbitration phase 406. Then, as previously described, thewinning gateway(s) transmits no data 502 during the data phase 422 anddrives the SLCK to zero (denoted at 504) until the bus timeout conditionoccurs at the time 506.

The interface fabric for interchip and intrachip communication accordingto aspects disclosed herein may be provided in or integrated into anyprocessor-based device. Examples, without limitation, include a set topbox, an entertainment unit, a navigation device, a communicationsdevice, a fixed location data unit, a mobile location data unit, amobile phone, a cellular phone, a smart phone, a tablet, a phablet, acomputer, a portable computer, a desktop computer, a personal digitalassistant (PDA), a monitor, a computer monitor, a television, a tuner, aradio, a satellite radio, a music player, a digital music player, aportable music player, a digital video player, a video player, a digitalvideo disc (DVD) player, a portable digital video player, and anautomobile.

Those of skill in the art will further appreciate that the variousillustrative logical blocks, modules, circuits, and algorithms describedin connection with the aspects disclosed herein may be implemented aselectronic hardware, instructions stored in memory or in anothercomputer readable medium and executed by a processor or other processingdevice, or combinations of both. The devices described herein may beemployed in any circuit, hardware component, IC, or IC chip, asexamples. Memory disclosed herein may be any type and size of memory andmay be configured to store any type of information desired. To clearlyillustrate this interchangeability, various illustrative components,blocks, modules, circuits, and steps have been described above generallyin terms of their functionality. How such functionality is implementeddepends upon the particular application, design choices, and/or designconstraints imposed on the overall system. Skilled artisans mayimplement the described functionality in varying ways for eachparticular application, but such implementation decisions should not beinterpreted as causing a departure from the scope of the presentdisclosure.

The various illustrative logical blocks, modules, and circuits describedin connection with the aspects disclosed herein may be implemented orperformed with a processor, a Digital Signal Processor (DSP), anApplication Specific Integrated Circuit (ASIC), a Field ProgrammableGate Array (FPGA) or other programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. A processormay be a microprocessor, but in the alternative, the processor may beany conventional processor, controller, microcontroller, or statemachine. A processor may also be implemented as a combination ofcomputing devices (e.g., a combination of a DSP and a microprocessor, aplurality of microprocessors, one or more microprocessors in conjunctionwith a DSP core, or any other such configuration).

The aspects disclosed herein may be embodied in hardware and ininstructions that are stored in hardware, and may reside, for example,in Random Access Memory (RAM), flash memory, Read Only Memory (ROM),Electrically Programmable ROM (EPROM), Electrically ErasableProgrammable ROM (EEPROM), registers, a hard disk, a removable disk, aCD-ROM, or any other form of computer readable medium known in the art.An exemplary storage medium is coupled to the processor such that theprocessor can read information from, and write information to, thestorage medium. In the alternative, the storage medium may be integralto the processor. The processor and the storage medium may reside in anASIC. The ASIC may reside in a remote station. In the alternative, theprocessor and the storage medium may reside as discrete components in aremote station, base station, or server.

It is also noted that the operational steps described in any of theexemplary aspects herein are described to provide examples anddiscussion. The operations described may be performed in numerousdifferent sequences other than the illustrated sequences. Furthermore,operations described in a single operational step may actually beperformed in a number of different steps. Additionally, one or moreoperational steps discussed in the exemplary aspects may be combined. Itis to be understood that the operational steps illustrated in theflowchart diagrams may be subject to numerous different modifications aswill be readily apparent to one of skill in the art. Those of skill inthe art will also understand that information and signals may berepresented using any of a variety of different technologies andtechniques. For example, data, instructions, commands, information,signals, bits, symbols, and chips that may be referenced throughout theabove description may be represented by voltages, currents,electromagnetic waves, magnetic fields or particles, optical fields orparticles, or any combination thereof.

The previous description of the disclosure is provided to enable anyperson skilled in the art to make or use the disclosure. Variousmodifications to the disclosure will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other variations without departing from the spirit or scopeof the disclosure. Thus, the disclosure is not intended to be limited tothe examples and designs described herein, but is to be accorded thewidest scope consistent with the principles and novel features disclosedherein.

What is claimed is:
 1. A method for populating a status table fornetwork nodes within a computing device, the method comprising:activating a first integrated circuit (IC) coupled to a bus; registeringfirst nodes associated with the first IC with a first gateway;populating a first status table at the first gateway with informationabout the first nodes associated with the first IC; and permittingintrachip communication between the first nodes associated with thefirst IC based on availability as indicated in the first status table.2. The method of claim 1, further comprising: activating a second ICcoupled to the bus; registering second nodes associated with the secondIC with a second gateway; populating a second status table at the secondgateway with information about the second nodes associated with thesecond IC; requesting, by the second gateway, configuration data fromthe first gateway; and populating the second status table at the secondgateway with the information about the first nodes associated with thefirst IC based on the information about the first nodes associated withthe first IC from the first status table at the first gateway.
 3. Themethod of claim 2, further comprising broadcasting, from the secondgateway, across the bus, the information about the second nodesassociated with the second IC stored in the second status table.
 4. Themethod of claim 1, further comprising, responsive to a first nodechanging state, updating the first status table to reflect a changedstate for the first node.
 5. The method of claim 4, further comprising:generating a scout message at the first gateway with information relatedto the changed state for the first node; and sending the scout messagefrom the first gateway to remote gateways communicatively coupled to thebus.
 6. The method of claim 5, further comprising: receiving the scoutmessage at a second gateway; and updating a second status table based onthe scout message.
 7. The method of claim 1, wherein permitting theintrachip communication between the first nodes associated with thefirst IC based on the availability as indicated in the first statustable comprises: receiving, at the first gateway, a message request froman initial node within the first IC to a destination node within thefirst IC; determining if the destination node is available based on theinformation about the first nodes associated with the first IC in thefirst status table; and instructing the initial node to send a messageassociated with the message request if the destination node isavailable.
 8. The method of claim 7, further comprising: responsive todetermining the destination node is not available, determining if thedestination node is wakeable; responsive to determining the destinationnode is wakeable, sending a wake command to the destination node; andinstructing the initial node to send the message associated with themessage request after waking the destination node.
 9. The method ofclaim 1, further comprising: receiving a message request from an initialnode within the first IC to a destination node at a second IC;determining if the destination node is available based on informationabout the destination node in the first status table; and instructingthe initial node to send a message associated with the message requestacross the bus if the destination node is available.
 10. A method forpopulating a status table for network nodes within a computing device,the method comprising: coupling a first integrated circuit (IC) withfirst nodes to a bus within a computing device; coupling a second ICwith second nodes to the bus within the computing device; receiving,from a first gateway associated with the first IC, status andconfiguration information relating to the first nodes; and populating,with the status and configuration information relating to the firstnodes, a status table at a second gateway associated with the second IC.11. The method of claim 10, further comprising populating the statustable at the second gateway with second status and configurationinformation relating to the second nodes.
 12. The method of claim 10,further comprising receiving an update from the first gateway indicatinga change in status of one of the first nodes.
 13. The method of claim12, further comprising updating the status table at the second gatewaywith the update indicating the change in the status of the one of thefirst nodes.
 14. The method of claim 10, further comprising requesting,by the second IC, the status and configuration information relating tothe first nodes responsive to the second IC being coupled to the bus.15. A method for updating a status table for network nodes within acomputing device, the method comprising: at a first gateway in a firstintegrated circuit (IC), receiving a state change indication from afirst node in the first IC; responsive to the state change indication,updating a first status table at the first gateway to reflect a statechange of the first node; and generating a scout message to a secondgateway in a second IC, wherein the scout message indicates the statechange of the first node.
 16. A method for updating a status table fornetwork nodes within a computing device, the method comprising: at afirst gateway in a first integrated circuit (IC), receiving a scoutmessage from a second gateway in a second IC, wherein the scout messageindicates a state change of a node in the second IC; responsive to thescout message, updating a first status table at the first gateway toreflect the state change of the node.
 17. An integrated circuit (IC),comprising: a node comprising a transmitter and a receiver; and agateway comprising: an external interface configured to be coupled to abus and communicate thereover through a first protocol; and an internalinterface communicatively coupled to the node and configured tocommunicate therebetween through the first protocol.
 18. The IC of claim17, wherein the node is coupled to the internal interface of the gatewaydirectly.
 19. The IC of claim 17, wherein the node is coupled to theinternal interface of the gateway through a network on chip (NoC). 20.The IC of claim 17, further comprising a control system configured tocontrol the gateway.
 21. The IC of claim 20, wherein the control systemis positioned within the gateway.
 22. The IC of claim 20, wherein thecontrol system is external to the gateway.
 23. The IC of claim 20,further comprising plural nodes coupled to the internal interface of thegateway.
 24. The IC of claim 23, wherein the control system isconfigured to arbitrate between the plural nodes.
 25. The IC of claim20, wherein the control system is configured to execute the firstprotocol.
 26. The IC of claim 17, wherein the node is configured tocommunicate with a second node within the IC.
 27. The IC of claim 17,wherein the node is configured to communicate with a second node outsidethe IC.
 28. The IC of claim 17, wherein the node comprises circuitryconfigured to operate as at least one of a navigation circuit, a sensorcircuit, an Always On Processor (AOP) circuit, an audio circuit, and amodem circuit.
 29. An integrated circuit (IC) comprising: a first node;a second node; a gateway comprising an external interface configured tocouple to a bus and operative to control information from the first nodeand the second node; and common circuitry that communicatively couplesthe first node and the second node to the gateway.
 30. A computingsystem comprising: a first integrated circuit (IC) comprising: a firstnode comprising a first transmitter and a first receiver; a firstgateway comprising: a first external interface; and a first internalinterface communicatively coupled to the first node and configured tocommunicate therebetween through a first protocol; a second ICcomprising: a second node comprising a second transmitter and a secondreceiver; a second gateway comprising: a second external interface; anda second internal interface communicatively coupled to the second nodeand configured to communicate therebetween through the first protocol;and a bus coupled to the first gateway of the first IC and the secondgateway of the second IC and configured to carry signals therebetweenusing the first protocol.
 31. The computing system of claim 30 whereinthe computing system is a device selected from the group consisting of:a set top box; an entertainment unit; a navigation device; acommunications device; a fixed location data unit; a mobile locationdata unit; a mobile phone; a cellular phone; a computer; a portablecomputer; a smart phone, a tablet, a phablet, a desktop computer; apersonal digital assistant (PDA); a monitor; a computer monitor; atelevision; a tuner; a radio; a satellite radio; a music player; adigital music player; a portable music player; a digital video player; avideo player; a digital video disc (DVD) player; a portable digitalvideo player, and an automobile.
 32. An integrated circuit (IC)comprising: a node; a gateway communicatively coupled to the node, thegateway comprising: an interface configured to be coupled to a bus; anda look-up table configured to store data relating to availability ofnodes associated with the bus; and a control system operatively coupledto the node and the gateway, the control system configured to: receive astatus update relating to a state of the node; and send informationrelating to the state of the node to other gateways associated with thebus to promote reliability between node-to-node communication.
 33. TheIC of claim 32, further comprising a plurality of nodes communicativelycoupled to the gateway.
 34. The IC of claim 32, wherein the controlsystem is positioned within the gateway.
 35. The IC of claim 32, whereinthe control system is positioned outside the gateway.
 36. The IC ofclaim 32, wherein the control system is further configured to: receive amessage request from the node; compare a destination identifier from themessage request to the look-up table; and determine availability of areceiving node based on the data in the look-up table.
 37. The IC ofclaim 36, wherein the control system is further configured to precludetransmission of a message from the node if the control system determinesthe receiving node is not available based on the data in the look-uptable.
 38. The IC of claim 32, wherein the control system is furtherconfigured to: receive a message request from the node; determine if themessage request requires reliability; and if the message request doesnot require reliability, instruct the node to send a message associatedwith the message request to a second node.
 39. The IC of claim 36,wherein the control system is further configured to: determine a wake oncommand capability of the receiving node; and send a wake command to thereceiving node.
 40. The IC of claim 36, wherein the control systemconfigured to determine the availability of the receiving nodedetermines availability of a receiving node within the IC.
 41. The IC ofclaim 36, wherein the control system configured to determine theavailability of the receiving node determines availability of areceiving node positioned outside the IC.
 42. The IC of claim 32,wherein the control system is further configured to receive a remotestatus update relating to a state of a second node positioned outsidethe IC.
 43. A method for facilitating node-to-node communication,comprising: receiving a status update from a local node at a gateway;and broadcasting the status update to remote gateways.
 44. The method ofclaim 43, wherein broadcasting the status update comprises informing theremote gateways the local node is unavailable.
 45. The method of claim43, wherein broadcasting the status update comprises informing theremote gateways the local node is asleep.
 46. The method of claim 45,wherein informing the remote gateways the local node is asleep furthercomprises informing the remote gateways the local node is wakeable oncommand.
 47. The method of claim 43, further comprising receiving asecond status update from a remote gateway.
 48. The method of claim 47,further comprising updating a look-up table with the second statusupdate.
 49. The method of claim 47, further comprising receiving amessage request from the local node.
 50. The method of claim 49, furthercomprising precluding sending a message from the local node if thesecond status update indicates that a destination node associated withthe message request was unavailable.
 51. A method of forcing a systemreset, comprising: during an arbitration phase, asserting from a gatewaya most urgent priority value to win arbitration; after winning thearbitration, sending no data from the gateway to force a bus timeout;and responsive to the bus timeout, initiating a system reset.
 52. Themethod of claim 51, further comprising: detecting an error between anode state and information in a status table at the gateway; andresponsive to detecting the error, determining the system reset isneeded.
 53. The method of claim 51, wherein asserting the most urgentpriority value comprises asserting all logical ones.
 54. The method ofclaim 51, wherein asserting the most urgent priority value comprisesasserting all logical zeros.
 55. The method of claim 51, furthercomprising sending no clock signal from the gateway after winning thearbitration.
 56. The method of claim 51, wherein asserting from thegateway the most urgent priority value to win the arbitration comprisesasserting the most urgent priority value concurrently from multiplegateways.
 57. The method of claim 51, further comprising running a timerto allow slow gateways to detect the bus timeout before initiating thesystem reset.
 58. An integrated circuit (IC) comprising: a gatewaycomprising: a bus interface configured to couple to a bus; and a controlsystem configured to: during an arbitration phase, assert a most urgentpriority value on the bus to win arbitration; after winning thearbitration, send no data on the bus to force a bus timeout; andresponsive to the bus timeout, initiate a system reset.